package com.bidevalution.dao.mapper;

import com.bidevalution.dao.entity.ExpertWarnMsgVo;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

/**
 * Created by glodon on 2019-11-19.
 */
public interface BeBidResultMapper {
    /**
     * 获取项目信息
     * @param sectionId
     * @return
     */
    Map<String, Object> getProjectInfo(String sectionId);

    /**
     * 更新项目信息
     * @param map
     */
    void updateProjectInfo(Map<String, Object> map);

    /**
     * 获取中标单位信息
     * @param sectionId
     * @return
     */
    List<Map<String, Object>> getBidInfoList(@Param("sectionId") String sectionId, @Param("limit") Integer limit);

    /**
     * 获取单位业绩信息
     * @param enterpriseId
     * @param performanceType 业绩类型 0，资格，1 评分
     * @return
     */
    List<Map<String, Object>> getBidPerformanceList(@Param("enterpriseId") String enterpriseId, @Param("performanceType") String performanceType);

    /**
     * 更新投标单位信息
     * @param map
     */
    void updateBidInfoList(List<Map<String, Object>> map);

    /**
     * 更新投标单位业绩
     * @param map
     */
    void updateBidPerformanceList(List<Map<String, Object>> map);

    /**
     * 保存投标单位业绩
     * @param list list
     */
    void saveBidPerformanceList(List<Map<String, Object>> list);

    /**
     * 取参数信息
     * @param projectId projectId
     * @param paraName paraName
     * @return Map
     */
    Map<String, Object> getAuditPara(@Param("projectId") String projectId, @Param("paraName") String paraName);

    /**
     * 查询否决投标单位的原因及依据
     * @param sectionId
     * @return
     */
    List<Map<String, Object>> getUnpassedEnterpriseList(String sectionId);
    /**
     * 查询评标专家公示
     * @param sectionId
     * @return
     */
    List<Map<String, Object>> getSectionExpertList(String sectionId);

    /**
     * 查询专家评分情况
     * @param sectionId
     * @return
     */
    List<Map<String, Object>> getExpertScoreList(String sectionId);

    /**
     * 查询项目信息，用于推送五库
     * @param sectionId
     * @return
     */
    Map<String, Object> getSegmentEvaluationRecord(String sectionId);

    /**
     * 查询专家个人意见List，用于推送五库
     * @param sectionId
     * @return
     */
    List<Map<String, Object>> getEvaluationRecord(@Param("sectionId") String sectionId, @Param("limit") Integer limit);

    /**
     * 中标人业绩List，用于推送五库
     * @param sectionId
     * @return
     */
    List<Map<String, Object>> getWinBidPerformance(@Param("sectionId") String sectionId, @Param("limit") Integer limit);

    /**
     * 废标单位列表List，用于推送五库
     * @param sectionId
     * @return
     */
    List<Map<String, Object>> getInvalidBidRecord(String sectionId);

    /**
     * 专家评分情况List，用于推送五库
     * @param sectionId
     * @return
     */
    List<Map<String, Object>> getExpertScoreRecord(String sectionId);

    /**
     * 单位得分表List，用于推送五库
     * @param sectionId
     * @return
     */
    List<Map<String, Object>> getWinBidScore(String sectionId);


    /**
     * 中标单位信息List，用于推送五库
     * @param sectionId
     * @return
     */
    List<Map<String, Object>> getWinBidInfo(@Param("sectionId") String sectionId, @Param("limit") Integer limit);

    /**
     * 新增业绩信息
     * @param params
     */
    void insertPerformance(Map<String,Object> params);

    /**
     * 获取业绩信息，为新增业绩提供参数
     * @param enterpriseId
     * @return
     */
    Map<String,Object> getPerformanceParams(@Param("enterpriseId") String enterpriseId, @Param("performanceId") String performanceId);

    /**
     * 删除扩展业绩
     * @param performancesId
     * @return
     */
    int delPerformances(String performancesId);

    /**
     * 获取业绩文件路径
     */
    String getPerformanceFilePath(@Param("sectionEnterpriseId") String sectionEnterpriseId,@Param("atfiAnnexType") String atfiAnnexType);

    /**
     * 获取排名异常信息
     * @param sectionStepId
     * @return
     */
    List<ExpertWarnMsgVo> getRankErrorInfo(@Param("sectionStepId")String sectionStepId);

    /**
     * 获取有效单位数量
     * @param sectionStepId
     * @return
     */
    Integer getStandardUnitNum(@Param("sectionStepId")String sectionStepId, @Param("columnName") String columnName);
    /**
     * 获取商务评审这类无最终结果，并且不会有废标情况下的有效单位数量
     * @param sectionStepId
     * @return
     */
    Integer getStandardUnitNumByBusiness(@Param("sectionStepId")String sectionStepId);

    /**
     * 检查通过企业数
     * @param sectionStepId
     * @return
     */
    Map<String,Object> getPassedUnitNum(String sectionStepId);
}
